package com.hanserwei.community.service;

import com.hanserwei.community.entity.po.Menu;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hanserwei.community.entity.request.menu.MenuAddRequest;
import com.hanserwei.community.entity.request.menu.MenuUpdateRequest;
import com.hanserwei.community.entity.vo.MenuVO;

import java.util.List;

public interface MenuService extends IService<Menu>{
    
    /**
     * 根据用户名查询用户菜单树
     */
    List<MenuVO> queryMenuByUserName(String userName);

    /**
     * 根据角色查询角色菜单树
     */
    List<MenuVO> queryMenuByRole(String role);

    /**
     * 更新角色菜单关联
     */
    boolean updateRoleMenu(List<MenuVO> menuVOList, Integer roleId);

    /**
     * 获取所有菜单树
     */
    List<MenuVO> getMenuTree();

    /**
     * 添加菜单
     */
    boolean addMenu(MenuAddRequest request);

    /**
     * 更新菜单
     */
    boolean updateMenu(MenuUpdateRequest request);

    /**
     * 删除菜单（检查角色关联）
     */
    boolean deleteMenu(Integer id);

    /**
     * 根据ID查询菜单详情
     */
    MenuVO getMenuById(Integer id);
}
